﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IMainView.cs" company="SMART business">
//   Copyright (c) 2014 All Rights Reserved
// </copyright>
// <summary>
//   The interface.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using UsersSettingsTool.Additional_Classes.Classes;
using UsersSettingsTool.Options;

namespace UsersSettingsTool.Views
{
    internal interface IMainView
    {
        event EventHandler ConnectionManagerStepChanged;

        event EventHandler GetUsers;

        event EventHandler ConnectionManagerConnectionFailed;

        event EventHandler ConnectionManagerConnectionSucceed;

        event EventHandler ShowUserMailBox;

        event EventHandler ShowUserInfo;

        event EventHandler UsersSelect;

        event EventHandler ViewYourPrivacyStatement;

        event EventHandler SaveChanges;

        void SetConnectionStatus(string message);

        void SetUserList(List<CrmUser> users);

        #region Fill Values

        void FillTimeZones(List<TimeZones> zones);

        void FillPanes(List<Pane> panes);

        void FillTabs(List<Tab> tabs);

        void FillCurrencies(List<Currency> currencies);

        void FillCalendar(List<CalendarList> calendarList);

        void FillTimes(List<object> timesList);

        void FillLanguages(List<object> installedLanguages);

        void FillRecordsPerPage(List<RecordPerPage> recordsPerPage);

        void FillBaseLanguage(string language);

        #endregion Fill Values

        #region Set Value

        void SetPane(object pane);

        void SetTab(object tab);

        void SetRecordPerPage(object recordsCount);

        void SetTimeZone(object timeZoneCode);

        void SetAdvancedFindMode(string mode);

        void SetCurrency(string currency);

        void SetHighContrast(bool isHighContrast);

        void SetCountryRegionCodePrefixing(bool isCountryRegionCodePrefixing);

        void SetCountryCode(string countryCode);

        void SetCalendarView(string calendarView);

        void SetWorkDayStartTime(string workDayStartTime);

        void SetWorkDayStopTime(string workDayStopTime);

        void SetSendAsAllowed(bool isSendAsAllowed);

        void SetTrackValues(List<object> trackValues);

        void SetCreateFromEmailOptions(List<object> createFromEmailOptions);

        void SetTrackValues(string filteringMethod);

        void SetAutoCreateEntity(string autoCreateOption);

        void SetAutoCreateOption(bool isAutoCreate);

        void SetReportScriptErrors(int reportScriptErrors);

        void SetHelpLanguage(string languageCode);

        void SetUiLanguage(string uiLanguageCode);

        // void SetFormats(List<Format> formats);

        #endregion Set Value

        #region GetValues

        // string GetAutoCreateOption();
        int GetRecordsPerPage();

        Guid GetCurrency();

        string GetPane();

        string GetTab();

        int GetAdvFindMode();

        int GetTimeZone();

        bool GetIsEnabledHighContrast();

        bool GetEnableCountryRegionCodePrefixing();

        string GetCountryCode();

        int GetCalendarView();

        string GetWorkDayStartTime();

        string GetWorkDayStopTime();

        bool GetIsSendAsAllowed();

        // int GetReportScriptErrors();
        int GetIsAutoCreateContactOnPromote();

        int GetIncomingEmailFilteringMethod();

        int GetSetReportScriptErrors();

        int GetHelpLanguage();

        int GetUiLanguage();

        #endregion

        void SetProgress(int i);
    }
}